package request

import (
	"gitee.com/cjsn/topsdk/ability654/domain"
	"gitee.com/cjsn/topsdk/util"
)

type AlipayBaoxianClaimUpdateRequest struct {
	/*
	   业务数据     */
	BizData *map[string]interface{} `json:"biz_data,omitempty" required:"false" `
	/*
	   进度列表     */
	ProgressList *[]string `json:"progress_list,omitempty" required:"false" `
	/*
	   附件列表     */
	ClaimAttachments *[]domain.AlipayBaoxianClaimUpdateClaimAttachment `json:"claim_attachments,omitempty" required:"false" `
	/*
	   保单业务单号     */
	PolicyBizNo *string `json:"policy_biz_no,omitempty" required:"false" `
	/*
	   外部业务单号     */
	OutBizNo *string `json:"out_biz_no,omitempty" required:"false" `
	/*
	   业务来源     */
	BizSource *string `json:"biz_source,omitempty" required:"false" `
	/*
	   理赔金额(单位为分)     */
	ClaimFee *int64 `json:"claim_fee,omitempty" required:"false" `
	/*
	   理赔单号     */
	ClaimNo *string `json:"claim_no,omitempty" required:"false" `
	/*
	   理赔外部业务单号     */
	ClaimOutBizNo *string `json:"claim_out_biz_no,omitempty" required:"false" `
	/*
	   标准产品ID     */
	SpNo *string `json:"sp_no,omitempty" required:"false" `
}

func (s *AlipayBaoxianClaimUpdateRequest) SetBizData(v map[string]interface{}) *AlipayBaoxianClaimUpdateRequest {
	s.BizData = &v
	return s
}
func (s *AlipayBaoxianClaimUpdateRequest) SetProgressList(v []string) *AlipayBaoxianClaimUpdateRequest {
	s.ProgressList = &v
	return s
}
func (s *AlipayBaoxianClaimUpdateRequest) SetClaimAttachments(v []domain.AlipayBaoxianClaimUpdateClaimAttachment) *AlipayBaoxianClaimUpdateRequest {
	s.ClaimAttachments = &v
	return s
}
func (s *AlipayBaoxianClaimUpdateRequest) SetPolicyBizNo(v string) *AlipayBaoxianClaimUpdateRequest {
	s.PolicyBizNo = &v
	return s
}
func (s *AlipayBaoxianClaimUpdateRequest) SetOutBizNo(v string) *AlipayBaoxianClaimUpdateRequest {
	s.OutBizNo = &v
	return s
}
func (s *AlipayBaoxianClaimUpdateRequest) SetBizSource(v string) *AlipayBaoxianClaimUpdateRequest {
	s.BizSource = &v
	return s
}
func (s *AlipayBaoxianClaimUpdateRequest) SetClaimFee(v int64) *AlipayBaoxianClaimUpdateRequest {
	s.ClaimFee = &v
	return s
}
func (s *AlipayBaoxianClaimUpdateRequest) SetClaimNo(v string) *AlipayBaoxianClaimUpdateRequest {
	s.ClaimNo = &v
	return s
}
func (s *AlipayBaoxianClaimUpdateRequest) SetClaimOutBizNo(v string) *AlipayBaoxianClaimUpdateRequest {
	s.ClaimOutBizNo = &v
	return s
}
func (s *AlipayBaoxianClaimUpdateRequest) SetSpNo(v string) *AlipayBaoxianClaimUpdateRequest {
	s.SpNo = &v
	return s
}

func (req *AlipayBaoxianClaimUpdateRequest) ToMap() map[string]interface{} {
	paramMap := make(map[string]interface{})
	if req.BizData != nil {
		paramMap["biz_data"] = util.ConvertStruct(*req.BizData)
	}
	if req.ProgressList != nil {
		paramMap["progress_list"] = util.ConvertBasicList(*req.ProgressList)
	}
	if req.ClaimAttachments != nil {
		paramMap["claim_attachments"] = util.ConvertStructList(*req.ClaimAttachments)
	}
	if req.PolicyBizNo != nil {
		paramMap["policy_biz_no"] = *req.PolicyBizNo
	}
	if req.OutBizNo != nil {
		paramMap["out_biz_no"] = *req.OutBizNo
	}
	if req.BizSource != nil {
		paramMap["biz_source"] = *req.BizSource
	}
	if req.ClaimFee != nil {
		paramMap["claim_fee"] = *req.ClaimFee
	}
	if req.ClaimNo != nil {
		paramMap["claim_no"] = *req.ClaimNo
	}
	if req.ClaimOutBizNo != nil {
		paramMap["claim_out_biz_no"] = *req.ClaimOutBizNo
	}
	if req.SpNo != nil {
		paramMap["sp_no"] = *req.SpNo
	}
	return paramMap
}

func (req *AlipayBaoxianClaimUpdateRequest) ToFileMap() map[string]interface{} {
	fileMap := make(map[string]interface{})
	return fileMap
}
